//package com.travel.dao.message.impl;
//
//import com.mongodb.client.result.DeleteResult;
//import com.mongodb.client.result.UpdateResult;
//import com.travel.dao.message.MessageDAO;
//import com.travel.pojo.message.Message;
//import org.bson.types.ObjectId;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.domain.PageRequest;
//import org.springframework.data.domain.Sort;
//import org.springframework.data.mongodb.core.MongoTemplate;
//import org.springframework.data.mongodb.core.query.Criteria;
//import org.springframework.data.mongodb.core.query.Query;
//import org.springframework.data.mongodb.core.query.Update;
//import org.springframework.stereotype.Repository;
//
//import java.util.Date;
//import java.util.List;
//
//
//@Repository
//public class MessageDAOlmpl implements MessageDAO {
//
//    /**
//     * 注入mongoTemplate
//     */
//    @Autowired
//    private MongoTemplate mongoTemplate;
//
//
//    /**
//     * 查找群发消息
//     * @param tid 团id
//     * @param msgType  群发消息消息类型 0聊天 1公告
//     * @param page 分页查找从第几条开始
//     * @param rows 分页大小
//     */
//    @Override
//    public List<Message> findListByFromAndTo(int tid, int msgType,Integer page, Integer rows) {
//        Criteria criteria=new Criteria().andOperator(
//                Criteria.where("tid").is(tid),
//                Criteria.where("msgType").is(msgType)
//        );
//        PageRequest pageRequest=PageRequest.of(page-1,rows, Sort.by(Sort.Direction.DESC,"sendDate"));
//        Query query=Query.query(criteria).with(pageRequest);
//        return this.mongoTemplate.find(query,Message.class);
//    }
//
//    /**
//     * 用消息id查数据
//     * @param id 消息ObjectId
//     */
//    @Override
//    public Message findMessageById(String id) {
//        return null;
//    }
//
//    /**
//     * 更新消息状态码
//     * @param id 消息ObjectId
//     * @param status 状态码
//     */
//    @Override
//    public UpdateResult updateMessageState(ObjectId id, Integer status) {
//        Query query=Query.query(Criteria.where("id").is(id));
//        Update update=Update.update("status",status);
//        if (status.intValue()==1){
//            update.set("send_date",new Date());
//        }else if(status.intValue()==2){
//            update.set("read_date",new Date());
//        }
//        return this.mongoTemplate.updateFirst(query,update,Message.class);
//    }
//
//    /**
//     * 保存消息
//     * @param message 消息参数
//     */
//    @Override
//    public Message saveMessage(Message message) {
//        message.setSendDate(new Date());
//        message.setStatus(1);
//        message.setId(ObjectId.get());
//        message.setReadDate(new Date());
//        return this.mongoTemplate.save(message);
//    }
//
//    /**
//     * 删除消息
//     * @param id 消息ObjectId
//     */
//    @Override
//    public DeleteResult deleteMessage(ObjectId id) {
//        Query query=Query.query(Criteria.where("id").is(id));
//        return this.mongoTemplate.remove(query,Message.class);
//    }
//}
